--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 8a35afbebeaa8b4a1512cf8d17abbc7c1e45bbf3
Parents : acf945e
Author : Mark Qvist <mark@adepta.io>
Date : 2018-04-05T19:13:07+02:00
Added escaping to upstream config commands
Changes
Diff
diff --git a/Framing.h b/Framing.h
index 0107764..4c0efe4 100644
--- a/Framing.h
+++ b/Framing.h
@@ -52,4 +52,13 @@ All: 0xc00119d21b80c00200005140c00308c00407c0
Radio on 0xc00501c0
Config+on 0xc00119d21b80c00200005140c00308c00407c00501c0
+
+
+ c1 = self.bandwidth >> 24
+ c2 = self.bandwidth >> 16 & 0xFF
+ c3 = self.bandwidth >> 8 & 0xFF
+ c4 = self.bandwidth & 0xFF
+ data = KISS.escape(chr(c1)+chr(c2)+chr(c3)+chr(c4))
+
+
*/
\ No newline at end of file
diff --git a/Utilities.cpp b/Utilities.cpp
index ff81abd..ec09a84 100644
--- a/Utilities.cpp
+++ b/Utilities.cpp
@@ -51,6 +51,12 @@ void led_indicate_info(int cycles) {
digitalWrite(pin_led_rx, LOW);
}
+void escapedSerialWrite(uint8_t byte) {
+ if (byte == FEND) { Serial.write(FESC); byte = TFEND; }
+ if (byte == FESC) { Serial.write(FESC); byte = TFESC; }
+ Serial.write(byte);
+}
+
void kiss_indicate_error(uint8_t error_code) {
Serial.write(FEND);
Serial.write(CMD_ERROR);
@@ -68,20 +74,20 @@ void kiss_indicate_radiostate() {
void kiss_indicate_stat_rx() {
Serial.write(FEND);
Serial.write(CMD_STAT_RX);
- Serial.write(stat_rx>>24);
- Serial.write(stat_rx>>16);
- Serial.write(stat_rx>>8);
- Serial.write(stat_rx);
+ escapedSerialWrite(stat_rx>>24);
+ escapedSerialWrite(stat_rx>>16);
+ escapedSerialWrite(stat_rx>>8);
+ escapedSerialWrite(stat_rx);
Serial.write(FEND);
}
void kiss_indicate_stat_tx() {
Serial.write(FEND);
Serial.write(CMD_STAT_TX);
- Serial.write(stat_tx>>24);
- Serial.write(stat_tx>>16);
- Serial.write(stat_tx>>8);
- Serial.write(stat_tx);
+ escapedSerialWrite(stat_tx>>24);
+ escapedSerialWrite(stat_tx>>16);
+ escapedSerialWrite(stat_tx>>8);
+ escapedSerialWrite(stat_tx);
Serial.write(FEND);
}
@@ -116,20 +122,20 @@ void kiss_indicate_txpower() {
void kiss_indicate_bandwidth() {
Serial.write(FEND);
Serial.write(CMD_BANDWIDTH);
- Serial.write(lora_bw>>24);
- Serial.write(lora_bw>>16);
- Serial.write(lora_bw>>8);
- Serial.write(lora_bw);
+ escapedSerialWrite(lora_bw>>24);
+ escapedSerialWrite(lora_bw>>16);
+ escapedSerialWrite(lora_bw>>8);
+ escapedSerialWrite(lora_bw);
Serial.write(FEND);
}
void kiss_indicate_frequency() {
Serial.write(FEND);
Serial.write(CMD_FREQUENCY);
- Serial.write(lora_freq>>24);
- Serial.write(lora_freq>>16);
- Serial.write(lora_freq>>8);
- Serial.write(lora_freq);
+ escapedSerialWrite(lora_freq>>24);
+ escapedSerialWrite(lora_freq>>16);
+ escapedSerialWrite(lora_freq>>8);
+ escapedSerialWrite(lora_freq);
Serial.write(FEND);
}
@@ -197,3 +203,4 @@ uint8_t getRandom() {
return 0x00;
}
}
+
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────